import pandas as pd
import numpy as np

np.random.seed(0)

dates = pd.date_range("20210101", periods=6)
df = pd.DataFrame(np.random.randn(6, 5), index=dates, columns=["a", "b", "c", "d", "e"])
print(df)

# 选择某列
print(df.c)
print(df['c'])

# ****************** loc方法，选择多长和多列 ***************
# 根据行下表编号选择多行
print(df[0: 3])

# 根据行名称选择多行
print(df["20210101": "20210103"])

# 根据行标签选择一行
print(df.loc["20210101"])

# 根据行标签选择多行
print(df.loc[["20210101", "20210103"]])

# 根据列名选择,行全选
print(df.loc[:, ['a', 'c']])

# 同时选择行和列
print(df.loc[["20210101", "20210103"], ['a', 'c']])


# **************** iloc方法 ****************
# 选择某个值
print(df.iloc[3, 1])

# 选择不连续的行，连续的列
print(df.iloc[[1, 3, 4], 1: 3])

# *********** ix方法， loc和iloc的结合 ***********
print(df.iloc[1: 3, [df.columns.get_loc('a'), df.columns.get_loc('c')]])

# ************** bool 选择 **************
print("************** bool 选择 **************")

# 选择某列小于0的数据
print(df[df.a < 0])
print(df[df['a'] < 0])

